using System;
using System.Linq.Expressions;

namespace Ioc.Kernel.LifeStyles
{
    public interface ILifeStyleStrategy : IDisposable
    {
        /// <summary>
        /// Musts the instanciate.
        /// </summary>
        /// <returns></returns>
        bool MustInstanciate();

        /// <summary>
        /// Gets the expression.
        /// </summary>
        /// <param name="className">Name of the class.</param>
        /// <returns></returns>

        Expression GetExpression(Type className);
        /// <summary>
        /// Sets the expression.
        /// </summary>
        /// <param name="expression">The expression.</param>
        void SetExpression(Expression expression);
    }
}